home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
oh!.2hd
/
OH!DEN_B.LZH
/
TOOLS
/
DC_VIEW
/
DITEM.C
< prev
next >
Wrap
Text File
|
1995-03-20
|
23KB
|
716 lines
/******************************************************************************
* ditem.c: ダイアログの処理関数
******************************************************************************
*/
#include <console.h> /* コンソール系マネージャを利用するときに必要 */
#include <sxgraph.h> /* グラフ系マネージャを利用するときに必要 */
#include <window.h> /* ウィンドウマンを利用するときに必要 */
#include <control.h> /* コントロールマンを利用するときに必要 */
#include <dialog.h> /* ダイアログマンを利用するときに必要 */
#include <text.h> /* テキストマンを利用するときに必要 */
#include <task.h> /* タスクマンを利用するときに必要 */
#include "DC.h" /* このプログラム固有のヘッダファイル */
/******************************************************************************
* dialogProc2(): ダイアログの作成、表示と各種処理(ドラブパスの設定)
******************************************************************************
* 引数: ComVal *pcv 共通変数へのポインタ
* = TRUE: 処理完了
* = FALSE: 処理失敗
* 戻り値: int num 終了したダイアログアイテムの番号
* = 1: [設定]ボタン
* = 2: [取消]ボタン
* < 0: 処理失敗
*/
int dialogProc2(ComVal *pcv)
{
int num; /* ダイアログのアイテム番号 */
int lastBC;
LASCII str1;
LASCII str2;
Graph *lastGraph;
Dialog *dialogPtr;
static short funcKeyTbl[] = { /* ファンクションキーアサインテーブル */
K_DEL, 0x07, /* [DEL] */
K_LEFT, 0x13, /* [←] */
K_RIGHT, 0x04, /* [→] */
K_CLR, 0, /* [CLR] */
K_INS, 0, /* [INS] */
0, 0 /* テーブル終端 */
};
/* ダイアログアイテムのリソースを読み込む */
dialogPtr = TSReferDM(129, NULL, W_FRONT);
if (dialogPtr == NULL) {
pcv->errorCode = 7; /* 作成できなかった */
return -1; /* 失敗したので-1を返す */
}
/* ファンクションキーアサインテーブルを設定する */
(*dialogPtr->tEdit)->funcCode = funcKeyTbl;
/* 編集可能テキストの文字列を設定する */
str1[0] = sprintf((char *) &str1[1], "%s",pcv->a_drv);
setDItemText(dialogPtr, 3, str1);
str2[0] = sprintf((char *) &str2[1], "%s",pcv->b_drv);
setDItemText(dialogPtr, 4, str2);
/* ダイアログ内を描画する */
lastGraph = GMGetGraph(); /* カレントグラフを退避する */
/* ダイアログをカレントグラフにする */
GMSetGraph(&dialogPtr->window.graph);
/* タイトルを描画する */
GMShadowStrZ("ドライブパスの設定", LONGWORD(44, 4));
GMShadowStrZ("A:\\ as", LONGWORD(12, 48));
GMShadowStrZ("B:\\ as", LONGWORD(12, 72));
lastBC = GMBackColor(G_WHITE); /* バックグラウンドカラーを白にする */
DMDraw(dialogPtr); /* すべてのアイテムを描画する */
while (1) {
/* 帰還属性を持つアイテムが押されるまで、アイテムの各種処理を
システムに任せて、押されたアイテムの番号を取得する */
num = DMControl(filterProc);
switch (num) {
case 1: /* [設定]ボタン */
case 2: /* [取消]ボタン */
break;
case 3: /* テキストエディット */
case 4:
break;
}
if (num == 1) {
/* [設定]ボタンが押されたなら、
編集可能テキストの内容を保存する */
/* 編集可能テキストの文字列を取得する */
getDItemText(dialogPtr, 3, str1);
strcpy(pcv->a_drv, strupr(&str1[1]));
getDItemText(dialogPtr, 4, str2);
strcpy(pcv->b_drv, strupr(&str2[1]));
break;
} else if (num == 2)
break;
}
GMBackColor(lastBC); /* バックグラウンドカラーを元に戻す */
DMDispose(dialogPtr); /* ダイアログを廃棄する */
GMSetGraph(lastGraph); /* カレントグラフを元に戻す */
/* 処理が完了したのでアイテム番号を返す */
return num;
}
/******************************************************************************
* filterProc(): ダイアログのフィルタ関数
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* Event *pev イベントレコードへのポインタ
* 戻り値: int 終了コード(ここでは、常に0)
* 注釈:
* DMControl()から呼び出され、カーソルの点滅処理と、リターンキー/ESCキー
* の入力を[設定]/[取消]ボタンのマウス左ダウンイベントに変換する処理を行う。
*/
int filterProc(Dialog *dlgPtr, Event *pev)
{
int keyCode; /* キーコード */
int num = 0; /* ダイアログのアイテム番号 */
short type;
Rect rc;
Handle item;
/* ダイアログをカレントグラフにする */
GMSetGraph(&dlgPtr->window.graph);
switch (pev->what) { /* イベントの種類は? */
case E_IDLE: /* アイドルイベント */
TMIdle(dlgPtr->tEdit); /* カーソルを点滅させる */
break;
case E_KEYDOWN: /* キーダウンイベント */
/* キーコードをファンクションキーアサインテーブルで変換する */
keyCode = TMKeyToAsk(dlgPtr->tEdit, (TsEvent *) pev);
/* キーコードがあるか? */
if (keyCode != -1 && keyCode != 0) {
switch (pev->whom.key.ascii) {
case '\r': /* リターンキーかENTERキー */
num = 1; /* [設定]ボタン */
break;
case '\x1b': /* ESCキー */
num = 2; /* [取消]ボタン */
break;
}
if (num != 0) {
/* 指定アイテムのレクタングル内を指す座標を作成する */
DIGet(dlgPtr, num, &type, &item, &rc);
/* 縦横4ドットだけ内側へ移動する */
rc.d.left += 4;
rc.d.top += 4;
/* グローバル座標系に変換する */
pev->where.x_y = GMLocalToGlobal(rc.l.l_t);
/* イベントをマウス左ダウンイベントにする */
pev->what = E_MSLDOWN;
}
}
break;
case E_UPDATE: /* アップデートイベント */
/* カーソルを点滅させるために、アップデート処理を行う */
WMUpdate(&dlgPtr->window); /* アップデートを開始する */
WMUpdtOver(&dlgPtr->window); /* アップデートを終了する */
break;
}
return 0;
}
/******************************************************************************
* dialogProc3(): ダイアログの作成、表示と各種処理(表示諸設定)
******************************************************************************
* 引数: ComVal *pcv 共通変数へのポインタ
* = TRUE: 処理完了
* = FALSE: 処理失敗
* 戻り値: int num 終了したダイアログアイテムの番号
* = 1: [設定]ボタン
* = 2: [取消]ボタン
* < 0: 処理失敗
*/
int dialogProc3(ComVal *pcv)
{
int num; /* ダイアログのアイテム番号 */
int chkBox1; /* チェックボックスの現在の状態 */
int chkBox2;
int adjust;
int part;
char buff[10];
Graph *lastGraph;
Dialog *dialogPtr;
Control ***ctrHdl;
Rect rcl = {520, 363, 554, 379};
/* ダイアログアイテムのリソースを読み込む */
dialogPtr = TSReferDM(130, NULL, W_FRONT);
if (dialogPtr == NULL) {
pcv->errorCode = 7; /* 作成できなかった */
return -1; /* 失敗したので-1を返す */
}
adjust = pcv->scrollstep;
setDItemControl(dialogPtr, 3, adjust);
setDItemCTitle(dialogPtr, 3, adjust);
chkBox1 = pcv->cutDisp; /* チェックボックスの現在の状態を取得する */
chkBox2 = pcv->lineDisp;
if (chkBox1 == 1) /* チェック状態か? */
/* チェックボックスに1をセットする */
setDItemControl(dialogPtr, 4, 1);
if (chkBox2 == 1) /* チェック状態か? */
/* チェックボックスに1をセットする */
setDItemControl(dialogPtr, 5, 1);
/* ダイアログ内を描画する */
lastGraph = GMGetGraph(); /* カレントグラフを退避する */
/* ダイアログをカレントグラフにする */
GMSetGraph(&dialogPtr->window.graph);
/* タイトルを描画する */
GMShadowStrZ(" 画面表示諸設定", LONGWORD(64, 4));
GMShadowStrZ("スクロール行数", LONGWORD(30, 40));
GMShadowStrZ("カットファイルの表示", LONGWORD(48, 70));
GMShadowStrZ("行のリアルタイム表示", LONGWORD(48, 94));
DMDraw(dialogPtr); /* すべてのアイテムを描画する */
while (1) {
/* 帰還属性を持つアイテムが押されるまで、アイテムの各種処理を
システムに任せて、押されたアイテムの番号を取得する */
num = DMControl(NULL);
switch (num) {
case 1: /* [設定]ボタン */
case 2: /* [取消]ボタン */
break;
case 3: /* 数値調整ボタン */
part = checkCM(dialogPtr, num);
switch(part) {
case C_INDEC:
if (adjust>1)
adjust--;
break;
case C_ININC:
if (adjust<6)
adjust++;
break;
}
setDItemCTitle(dialogPtr, num, adjust, part);
setDItemControl(dialogPtr, num, 1);
break;
case 4: chkBox1 = getDItemControl(dialogPtr, num) ^ 1;
setDItemControl(dialogPtr, num, chkBox1);
break;
case 5: chkBox2 = getDItemControl(dialogPtr, num) ^ 1;
setDItemControl(dialogPtr, num, chkBox2);
break;
}
if (num == 1) {
/* [設定]ボタンが押されたなら、
アイテムの内容を保存する */
pcv->scrollstep = adjust;
pcv->cutDisp = chkBox1;
pcv->lineDisp = chkBox2;
break;
} else if (num == 2)
break;
}
DMDispose(dialogPtr); /* ダイアログを廃棄する */
GMSetGraph(lastGraph); /* カレントグラフを元に戻す */
GMSetGraph(&pcv->windowPtr->graph);
if (!pcv->lineDisp) {
GMShadowRect(&rcl);
GMMove(LONGWORD(521,364));
sprintf(buff, "%5d", pcv->ofset + 1);
GMDrawStrZ(buff);
}
/* 処理が完了したのでアイテム番号を返す */
return num;
}
/******************************************************************************
* dialogProc4(): ダイアログの作成、表示と各種処理(起動プログラム設定)
******************************************************************************
* 引数: ComVal *pcv 共通変数へのポインタ
* = TRUE: 処理完了
* = FALSE: 処理失敗
* 戻り値: int num 終了したダイアログアイテムの番号
* = 1: [設定]ボタン
* = 2: [取消]ボタン
* < 0: 処理失敗
*/
int dialogProc4(ComVal *pcv)
{
int num; /* ダイアログのアイテム番号 */
int lastBC;
LASCII pcmfn,pcmOpt;
LASCII mzfn,mzOpt;
LASCII picfn,picOpt;
int pcmBtn,mzBtn,picBtn;
Graph *lastGraph;
Dialog *dialogPtr;
static short funcKeyTbl[] = { /* ファンクションキーアサインテーブル */
K_DEL, 0x07, /* [DEL] */
K_LEFT, 0x13, /* [←] */
K_RIGHT, 0x04, /* [→] */
K_CLR, 0, /* [CLR] */
K_INS, 0, /* [INS] */
0, 0 /* テーブル終端 */
};
/* ダイアログアイテムのリソースを読み込む */
dialogPtr = TSReferDM(131, NULL, W_FRONT);
if (dialogPtr == NULL) {
pcv->errorCode = 7; /* 作成できなかった */
return -1; /* 失敗したので-1を返す */
}
/* ファンクションキーアサインテーブルを設定する */
(*dialogPtr->tEdit)->funcCode = funcKeyTbl;
/* 編集可能テキストの文字列を設定する */
pcmBtn = pcv->pcmTask;
if (pcv->pcmTask != 0)
pcmBtn = 1;
setDItemControl(dialogPtr, 3, pcmBtn == 0);
setDItemControl(dialogPtr, 4, pcmBtn == 1);
mzBtn = pcv->mzTask;
if (pcv->mzTask != 0)
mzBtn = 1;
setDItemControl(dialogPtr, 7, mzBtn == 0);
setDItemControl(dialogPtr, 8, mzBtn == 1);
picBtn = pcv->picTask;
if (pcv->picTask != 0)
picBtn = 1;
setDItemControl(dialogPtr, 13, picBtn == 0);
setDItemControl(dialogPtr, 14, picBtn == 1);
pcmfn[0] = sprintf((char *) &pcmfn[1], "%s",pcv->pcmFname);
setDItemText(dialogPtr, 5, pcmfn);
pcmOpt[0] = sprintf((char *) &pcmOpt[1], "%s",pcv->pcmOpt);
setDItemText(dialogPtr, 6, pcmOpt);
mzfn[0] = sprintf((char *) &mzfn[1], "%s",pcv->mzFname);
setDItemText(dialogPtr, 9, mzfn);
mzOpt[0] = sprintf((char *) &mzOpt[1], "%s",pcv->mzOpt);
setDItemText(dialogPtr, 10, mzOpt);
picfn[0] = sprintf((char *) &picfn[1], "%s",pcv->picFname);
setDItemText(dialogPtr, 11, picfn);
picOpt[0] = sprintf((char *) &picOpt[1], "%s",pcv->picOpt);
setDItemText(dialogPtr, 12, picOpt);
/* ダイアログ内を描画する */
lastGraph = GMGetGraph(); /* カレントグラフを退避する */
/* ダイアログをカレントグラフにする */
GMSetGraph(&dialogPtr->window.graph);
/* タイトルを描画する */
GMShadowStrZ("起動プログラム設定", LONGWORD(76, 4));
GMShadowStrZ("PCM:", LONGWORD(12, 36));
GMShadowStrZ("IOCS CALL", LONGWORD(96, 36));
GMShadowStrZ("ZMS:", LONGWORD(12, 108));
GMShadowStrZ("ZMUSIC CALL", LONGWORD(96, 108));
GMShadowStrZ("PIC:", LONGWORD(12, 180));
GMShadowStrZ("表示しない", LONGWORD(96, 180));
GMShadowStrZ("Option", LONGWORD(48, 84));
GMShadowStrZ("Option", LONGWORD(48, 156));
GMShadowStrZ("Option", LONGWORD(48, 228));
lastBC = GMBackColor(G_WHITE); /* バックグラウンドカラーを白にする */
DMDraw(dialogPtr); /* すべてのアイテムを描画する */
while (1) {
/* 帰還属性を持つアイテムが押されるまで、アイテムの各種処理を
システムに任せて、押されたアイテムの番号を取得する */
num = DMControl(filterProc);
switch (num) {
case 1: /* [設定]ボタン */
case 2: /* [取消]ボタン */
break;
case 3: /* ラジオボタン(pcm) */
pcmBtn = 0;
setDItemControl(dialogPtr, num , 1);
setDItemControl(dialogPtr, num + 1, 0);
break;
case 4:
pcmBtn = 1;
setDItemControl(dialogPtr, num - 1, 0);
setDItemControl(dialogPtr, num , 1);
break;
case 5: /* テキストエディット */
case 6:
break;
case 7: /* ラジオボタン(zms) */
mzBtn = 0;
setDItemControl(dialogPtr, num , 1);
setDItemControl(dialogPtr, num + 1, 0);
break;
case 8:
mzBtn = 1;
setDItemControl(dialogPtr, num - 1, 0);
setDItemControl(dialogPtr, num , 1);
break;
case 9: /* テキストエディット */
case 10:
case 11:
case 12:
break;
case 13: /* ラジオボタン(pic) */
picBtn = 0;
setDItemControl(dialogPtr, num , 1);
setDItemControl(dialogPtr, num + 1, 0);
break;
case 14:
picBtn = 1;
setDItemControl(dialogPtr, num - 1, 0);
setDItemControl(dialogPtr, num , 1);
break;
}
if (num == 1) {
/* [設定]ボタンが押されたなら、
編集可能テキストの内容を保存する */
/* 編集可能テキストの文字列を取得する */
getDItemText(dialogPtr, 5, pcmfn);
strcpy(pcv->pcmFname, &pcmfn[1]);
getDItemText(dialogPtr, 6, pcmOpt);
strcpy(pcv->pcmOpt, &pcmOpt[1]);
getDItemText(dialogPtr, 9, mzfn);
strcpy(pcv->mzFname, &mzfn[1]);
getDItemText(dialogPtr, 10, mzOpt);
strcpy(pcv->mzOpt, &mzOpt[1]);
getDItemText(dialogPtr, 11, picfn);
strcpy(pcv->picFname, &picfn[1]);
getDItemText(dialogPtr, 12, picOpt);
strcpy(pcv->picOpt, &picOpt[1]);
if (pcmBtn) {
if (pcv->pcmTask == 0)
pcv->pcmTask = 1;
} else {
pcv->pcmTask = 0;
}
if (mzBtn) {
if (pcv->mzTask == 0)
pcv->mzTask = 1;
} else {
pcv->mzTask = 0;
}
if (picBtn) {
if (pcv->picTask == 0)
pcv->picTask = 1;
} else {
pcv->picTask = 0;
}
break;
} else if (num == 2)
break;
}
GMBackColor(lastBC); /* バックグラウンドカラーを元に戻す */
DMDispose(dialogPtr); /* ダイアログを廃棄する */
GMSetGraph(lastGraph); /* カレントグラフを元に戻す */
/* 処理が完了したのでアイテム番号を返す */
return num;
}
/******************************************************************************
* dialogProc5(): ダイアログの作成、表示と各種処理(文字列検索)
******************************************************************************
* 引数: ComVal *pcv 共通変数へのポインタ
* = TRUE: 処理完了
* = FALSE: 処理失敗
* 戻り値: int num 終了したダイアログアイテムの番号
* = 1: [設定]ボタン
* = 2: [取消]ボタン
* < 0: 処理失敗
*/
int dialogProc5(ComVal *pcv, int mode)
{
int num; /* ダイアログのアイテム番号 */
int lastBC;
LASCII str1;
Graph *lastGraph;
Dialog *dialogPtr;
int offset;
char *txtPt;
int *txtNo;
int status,i;
char *pt;
static short funcKeyTbl[] = { /* ファンクションキーアサインテーブル */
K_DEL, 0x07, /* [DEL] */
K_LEFT, 0x13, /* [←] */
K_RIGHT, 0x04, /* [→] */
K_CLR, 0, /* [CLR] */
K_INS, 0, /* [INS] */
0, 0 /* テーブル終端 */
};
if (mode == 0) {
/* ダイアログアイテムのリソースを読み込む */
dialogPtr = TSReferDM(132, NULL, W_FRONT);
WMMove(&dialogPtr->window, GMLocalToGlobal(LONGWORD(122,250)),FALSE);
WMShow(&dialogPtr->window);
if (dialogPtr == NULL) {
pcv->errorCode = 7; /* 作成できなかった */
return -1; /* 失敗したので-1を返す */
}
/* ファンクションキーアサインテーブルを設定する */
(*dialogPtr->tEdit)->funcCode = funcKeyTbl;
/* 編集可能テキストの文字列を設定する */
if (pcv->mojiFlag == 0) {
pcv->moji[0] = 0;
pcv->mojiFlag = 1;
}
str1[0] = sprintf((char *) &str1[1], "%s",pcv->moji);
setDItemText(dialogPtr, 4, str1);
/* ダイアログ内を描画する */
lastGraph = GMGetGraph(); /* カレントグラフを退避する */
/* ダイアログをカレントグラフにする */
GMSetGraph(&dialogPtr->window.graph);
/* タイトルを描画する */
GMShadowStrZ("検索文字列:", LONGWORD(12, 12));
lastBC = GMBackColor(G_WHITE); /* バックグラウンドカラーを白にする */
DMDraw(dialogPtr); /* すべてのアイテムを描画する */
while (1) {
/* 帰還属性を持つアイテムが押されるまで、アイテムの各種処理を
システムに任せて、押されたアイテムの番号を取得する */
num = DMControl(filterProc);
switch (num) {
case 1: /* [全域検索]ボタン */
offset = 0;
break;
case 2: /* [取消]ボタン */
break;
case 3: /* [次検索]ボタン */
offset = pcv->status + 1;
break;
case 4: /* テキストエディット */
break;
}
if (num == 1 || num == 3) {
/* [*検索]ボタンが押されたなら、
編集可能テキストの内容を保存する */
/* 編集可能テキストの文字列を取得する */
getDItemText(dialogPtr, 4, str1);
strcpy(pcv->moji, &str1[1]);
break;
} else if (num == 2)
break;
}
GMBackColor(lastBC); /* バックグラウンドカラーを元に戻す */
DMDispose(dialogPtr); /* ダイアログを廃棄する */
GMSetGraph(lastGraph); /* カレントグラフを元に戻す */
} else if (mode == 1) {
num = 1;
offset = 0;
} else if (mode == 2) {
num = 3;
offset = pcv->status + 1;
}
status = -1;
if (num == 1 || num == 3) {
MMHdlLock(pcv->txt);
MMHdlLock(pcv->txtNo);
txtPt = *(pcv->txt);
txtNo = *(pcv->txtNo);
if ((pt = strstr((txtPt + *(txtNo + offset)), pcv->moji)) != NULL) {
for(i=offset;i<pcv->Maxline + 1;i++) {
if ( (txtPt + *(txtNo + i)) > pt) {
pcv->ofset = i - 1;
status = pcv->ofset;
pcv->status = pcv->ofset;
break;
}
}
}
MMHdlUnlock(pcv->txtNo);
MMHdlUnlock(pcv->txt);
}
/* 処理が完了したのでstatusを返す */
return status;
}
/******************************************************************************
* setDItemText(): ダイアログアイテムの編集可能テキストへの文字列の設定
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* int num ダイアログのアイテム番号
* _LASCII str 設定するLASCII型文字列
*/
void setDItemText(Dialog *dlgPtr, int num, _LASCII str)
{
short type;
Rect rc;
Handle item;
/* ダイアログアイテムのハンドルを取得する */
DIGet(dlgPtr, num, &type, &item, &rc);
DITSet(type, item, str); /* 編集可能テキストに文字列を設定する */
}
/******************************************************************************
* getDItemText(): ダイアログアイテムの編集可能テキストの文字列の取得
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* int num ダイアログのアイテム番号
* _LASCII str LASCII型文字列を格納するポインタ
*/
void getDItemText(Dialog *dlgPtr, int num, _LASCII str)
{
short type;
Rect rc;
Handle item;
/* ダイアログアイテムのハンドルを取得する */
DIGet(dlgPtr, num, &type, &item, &rc);
DITGet(type, item, str); /* 編集可能テキストの文字列を取得する */
if (str[str[0]] == '\\') { /* 文字列の最後に0を付加する */
str[str[0]] = 0;
} else {
str[str[0] + 1] = 0;
}
}
/******************************************************************************
* setDItemControl(): ダイアログアイテムのコントロールへの値の設定
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* int num ダイアログのアイテム番号
* int val 設定する値
*/
void setDItemControl(Dialog *dlgPtr, int num, int val)
{
short type;
Rect rc;
Handle item;
/* ダイアログアイテムのハンドルを取得する */
DIGet(dlgPtr, num, &type, &item, &rc);
/* コントロールに値を設定する */
CMValueSet((Control **) item, val);
}
/******************************************************************************
* getDItemControl(): ダイアログアイテムのコントロールの現在値の取得
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* int num ダイアログのアイテム番号
* int *val 値を格納するポインタ
*/
int getDItemControl(Dialog *dlgPtr, int num)
{
short type;
Rect rc;
Handle item;
/* ダイアログアイテムのハンドルを取得する */
DIGet(dlgPtr, num, &type, &item, &rc);
/* コントロールの現在値を返す */
return CMValueGet((Control **) item);
}
/******************************************************************************
* checkCM(): ダイアログアイテムの操作パートの取得
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* int num ダイアログのアイテム番号
* int *val 値を格納するポインタ
*/
int checkCM(Dialog *dlgPtr, int num)
{
short type;
Rect rc;
Handle item;
/* ダイアログアイテムのハンドルを取得する */
DIGet(dlgPtr, num, &type, &item, &rc);
/* コントロールの現在値を返す */
return CMCheck((Control **) item, EMMSLoc(), NULL);
}
/******************************************************************************
* setDItemCTitle(): ダイアログアイテムのタイトル描画
******************************************************************************
* 引数: Dialog *dlgPtr ダイアログポインタ
* int num ダイアログのアイテム番号
* int val 値を格納するポインタ
*/
int setDItemCTitle(Dialog *dlgPtr, int num, int val, int part)
{
short type;
Rect rc;
Handle item;
char buff[20];
buff[0] = sprintf(&buff[1], "%4d", val);
/* ダイアログアイテムのハンドルを取得する */
DIGet(dlgPtr, num, &type, &item, &rc);
/* コントロールのタイトルを設定する */
CMTitleSet((Control **) item, (_LASCII) buff);
CMShine((Control **) item, part);
while(EMLStill()) {
}
CMShine((Control **) item, C_ACTIVE);
}
STR@ Vッ EdEV 3.00 <